package cn.xiaopeng.mcp.server.weixin.infrastructure.gateway;

import cn.xiaopeng.mcp.server.weixin.infrastructure.gateway.dto.WeixinTemplateMessageDTO;
import cn.xiaopeng.mcp.server.weixin.infrastructure.gateway.dto.WeixinTokenResponseDTO;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * @author jiangyangang
 */
public interface IWeixinApiService {

    /**
     * 获取token
     * @param grantType
     * @param appId
     * @param secret
     * @return
     */
    @GET("cgi-bin/token")
    Call<WeixinTokenResponseDTO> getToken(
            @Query("grant_type") String grantType,
            @Query("appid") String appId,
            @Query("secret") String secret
            );

    /**
     * 发送微信公众号模板消息
     * 文档：<a href="https://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl">https://mp.weixin.qq.com/debug/cgi-bin/readtmpl?t=tmplmsg/faq_tmpl</a>
     *
     * @param accessToken  getToken 获取的 token 信息
     * @param request 入参对象
     * @return 应答结果
     */
    @POST("cgi-bin/message/template/send")
    Call<Void> sendMessage(
            @Query("access_token") String accessToken,
            @Body WeixinTemplateMessageDTO request
            );
}
